package com.deng.common.view
{      	
	import flash.events.MouseEvent;
	import flash.xml.*;
	
	import mx.collections.*;
	import mx.controls.CheckBox;
	import mx.controls.Image;
	import mx.controls.Tree;
	import mx.controls.listClasses.*;
	import mx.controls.treeClasses.*;       
	public class OrganizationTreeRender extends TreeItemRenderer      
	{ 
//		protected var myImage:Image;          
//		protected var myCheckBox:CheckBox;          // 设置图像属性          
//		private var imageWidth:Number  = 10;          
//		private var imageHeight:Number  = 10;         
//		private var inner:String     = "icon/checkboxBack.jpg"; 
		
		
//		创建CheckBox和Image：
//		public function OrganizationTreeRender ()          
//		{              
//			super();              
//			mouseEnabled = false;          
//		}      
//		   
//		private function toggleParents (item:Object,tree:Tree,state:String):void 
//		{              
//			if (item == null)              
//			{                  
//				return;              
//			}          
//			else              
//			{               
//				var vo:StatDivisionVO = StatDivisionVO(item) ;    
//				
//				
////				if(vo.state == Navigator.STATE_CHECKED
////				&& state == Navigator.STATE_UNCHECKED){
////					ModelLocator.getInstance().deleteStatDivisionL.addItem(vo);	
////				}
////				if(vo.state == Navigator.STATE_UNCHECKED
////				&& state == Navigator.STATE_CHECKED){
////					ModelLocator.getInstance().addStatDivisionL.addItem(vo);
////				}
//
//				if(state==Navigator.STATE_UNCHECKED){
//					if(ModelLocator.getInstance().addStatDivisionL.contains(vo)){
//					     var index:int=ModelLocator.getInstance().addStatDivisionL.getItemIndex(vo);
//					     ModelLocator.getInstance().addStatDivisionL.removeItemAt(index);
//					}
//                    if(vo.state == Navigator.STATE_CHECKED || vo.state == Navigator.STATE_SCHRODINGER ){
//                      if(!ModelLocator.getInstance().deleteStatDivisionL.contains(vo)){
//                            ModelLocator.getInstance().deleteStatDivisionL.addItem(vo);
//                       }
//                    }
//               }else if(state==Navigator.STATE_CHECKED || state==Navigator.STATE_SCHRODINGER){
//                    if(ModelLocator.getInstance().deleteStatDivisionL.contains(vo)){
//                        var index:int=ModelLocator.getInstance().deleteStatDivisionL.getItemIndex(vo);
//                        ModelLocator.getInstance().deleteStatDivisionL.removeItemAt(index);
//                    }
//                    if(vo.state == Navigator.STATE_UNCHECKED){
//                        if(!ModelLocator.getInstance().addStatDivisionL.contains(vo))
//                        {
//                            ModelLocator.getInstance().addStatDivisionL.addItem(vo);
//                        }
//                   }
//               }
//				vo.state = state;                  
//				toggleParents(tree.getParentItem(item), tree, getState (tree, tree.getParentItem(item)));              
//			}   
//		}           
//		
//		private function toggleChildren (item:Object, tree:Tree, state:String):void          
//		{              
//			if (item == null) {return;}              
//			else {
//				var vo:StatDivisionVO = StatDivisionVO(item);
//				
//				if(state==Navigator.STATE_UNCHECKED){
//					if(ModelLocator.getInstance().addStatDivisionL.contains(vo)){
//                         var index:int=ModelLocator.getInstance().addStatDivisionL.getItemIndex(vo);
//                         ModelLocator.getInstance().addStatDivisionL.removeItemAt(index);
//                    }
//				    if(vo.state == Navigator.STATE_CHECKED || vo.state==Navigator.STATE_SCHRODINGER){
//	                      if(!ModelLocator.getInstance().deleteStatDivisionL.contains(vo)){
//	                           ModelLocator.getInstance().deleteStatDivisionL.addItem(vo);
//	                       }
//                    }
//			   }else if(state==Navigator.STATE_CHECKED || state==Navigator.STATE_SCHRODINGER){
//			   	    if(ModelLocator.getInstance().deleteStatDivisionL.contains(vo)){
//			   	        var index:int=ModelLocator.getInstance().deleteStatDivisionL.getItemIndex(vo);
//                        ModelLocator.getInstance().deleteStatDivisionL.removeItemAt(index);
//			   	    }
//			        if(vo.state == Navigator.STATE_UNCHECKED){
//	                    if(!ModelLocator.getInstance().addStatDivisionL.contains(vo))
//	                    {
//	                       ModelLocator.getInstance().addStatDivisionL.addItem(vo);
//	                    }
//                   }
//			   }
//				
//				
//				
////				if(vo.state == Navigator.STATE_CHECKED
////                && state == Navigator.STATE_UNCHECKED){
////                    ModelLocator.getInstance().deleteStatDivisionL.addItem(vo);
////                }
////                if(vo.state == Navigator.STATE_UNCHECKED
////                && state == Navigator.STATE_CHECKED){
////                    ModelLocator.getInstance().addStatDivisionL.addItem(vo);
////                }
//				
//				vo.state = state;                  
//				var treeData:ITreeDataDescriptor = tree.dataDescriptor;                  
//				if (treeData.hasChildren(item)) 
//				{               
//					var children:ICollectionView = treeData.getChildren (item);                      
//					var cursor:IViewCursor = children.createCursor();                      
//					while (!cursor.afterLast) 
//					{                          
//						toggleChildren(cursor.current, tree, state);                          
//						cursor.moveNext();                      
//					}                  
//				}              
//			}          
//		}
//		
//		
//		private function getState(tree:Tree, parent:Object):String 
//		{      
//			var noChecks:int = 0;      
//			var noCats:int = 0;      
//			var noUnChecks:int = 0;      
//			if (parent != null) 
//			{          
//				var treeData:ITreeDataDescriptor = tree.dataDescriptor;          
//				var cursor:IViewCursor = treeData.getChildren(parent).createCursor();          
//				while (!cursor.afterLast) 
//				{              
//					var vo:StatDivisionVO = StatDivisionVO(cursor.current);
//					if (vo.state == Navigator.STATE_CHECKED){                  
//						noChecks++;              
//					}else if (vo.state == Navigator.STATE_UNCHECKED){                  
//						noUnChecks++;             
//					}else {                  
//						noCats++;              
//					}              
//					cursor.moveNext();          
//				}      
//			}      
////			if ((noChecks > 0 && noUnChecks > 0) || (noCats > 0 && noChecks>0)) 
//            if ((noChecks > 0 && noUnChecks > 0) || (noCats > 0 )) 
//			{          
//				return Navigator.STATE_SCHRODINGER;      
//			} 
//			else if (noChecks > 0) {
//				return Navigator.STATE_CHECKED;      
//			} 
//			else {          
//				return Navigator.STATE_UNCHECKED;     
//			}  
//		}  
//		
//		private function checkBoxToggleHandler(event:MouseEvent):void  
//		{      
//			if (data){          
//				var myListData:TreeListData = TreeListData(this.listData);          
//				var selectedNode:Object = myListData.item;          
//				var tree:Tree = Tree(myListData.owner);          
//				var toggle:Boolean = myCheckBox.selected;          
//				if (toggle) {              
//					toggleChildren(data, tree, Navigator.STATE_CHECKED);           
//				} else {              
//					toggleChildren(data, tree, Navigator.STATE_UNCHECKED);          
//				}          
//				var parent:Object = tree.getParentItem (data);          
//				toggleParents (parent, tree, getState (tree, parent));      
//			} 
//		} 
//		
//		override protected function createChildren():void {              
//			super.createChildren();              
//			myCheckBox = new CheckBox();              
//			myCheckBox.setStyle( "verticalAlign", "middle" );              
//			myCheckBox.addEventListener( MouseEvent.CLICK, checkBoxToggleHandler );              
//			addChild(myCheckBox);              
//			myImage = new Image();              
//			myImage.source = inner;              
//			myImage.addEventListener( MouseEvent.CLICK, imageToggleHandler );              
//			myImage.setStyle( "verticalAlign", "middle" );              
//			addChild(myImage);           
//		} 
//		
//		private function imageToggleHandler(event:MouseEvent):void 
//		{      
//			myCheckBox.selected = !myCheckBox.selected;      
//			checkBoxToggleHandler(event);  
//		} 
//		          	
//		private function setCheckState (checkBox:CheckBox, value:Object, state:String)  :void 
//		{              
//			if (state == Navigator.STATE_CHECKED) {                  
//				checkBox.selected = true;              
//			}              
//			else if (state == Navigator.STATE_UNCHECKED) 
//			{                 
//				checkBox.selected = false;              
//			}              
//			else if (state == Navigator.STATE_SCHRODINGER) {                  
//				checkBox.selected = false;              
//			}          
//		}          
//		
//		override public function set data(value:Object):void 
//		{              
//			if(value != null) 
//			{                  
//				super.data = value;        
//				var vo:StatDivisionVO = StatDivisionVO(value);  
//				setCheckState (myCheckBox, value, vo.state);  
//				             
////				if(TreeListData(super.listData).item.@type == 'dimension') 
////				{                      
////					setStyle("fontStyle", 'italic');                  
////				} else {                      
////					if (this.parent != null) {                          
////						var _tree:Tree = Tree(this.parent.parent);                          
////						_tree.setStyle("defaultLeafIcon", null);                        
////					}                      
////					setStyle("fontStyle", 'normal');                  
////				}              
//			}          
//		}    
//		      
//		override protected function updateDisplayList(unscaledWidth:Number,      unscaledHeight:Number):void         
//		{              
//			super.updateDisplayList(unscaledWidth, unscaledHeight);              
//			if(super.data)              
//			{                  
//				if (super.icon != null) 
//				{                      
//					myCheckBox.x = super.icon.x;                      
//					myCheckBox.y = 10;                      
//					super.icon.x = myCheckBox.x + myCheckBox.width + 17;                      
//					super.label.x = super.icon.x + super.icon.width + 3;                  
//				} else {                      
//					myCheckBox.x = super.label.x;                      
//					myCheckBox.y = 10;                      
//					super.label.x = myCheckBox.x + myCheckBox.width + 17;                  
//				}            
//				var vo:StatDivisionVO = StatDivisionVO(data);      
//				if (vo.state == Navigator.STATE_SCHRODINGER) 
//				{                      
//					myImage.x = myCheckBox.x;                      
//					myImage.y = myCheckBox.y;                      
//					myImage.width = imageWidth;                      
//					myImage.height = imageHeight;                  
//				} else {                     
//					 myImage.x = 0;                      
//					 myImage.y = 0;                      
//					 myImage.width = 0;                      
//					 myImage.height = 0;                  
//				}              
//			}          
//		} 
		     
	} 
} 